package com.oig.sys.base.dto;

import com.oig.common.validator.GroupAdd;
import com.oig.common.validator.GroupEdit;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;


@Schema
@Data
public class HsGoodsDto {

    @Schema(description = "hsCode", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @NotEmpty(message = "参数错误,hsCode不能为空", groups={GroupAdd.class, GroupEdit.class})
    private String hsCode;
    @Schema(description = "名称", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @NotEmpty(message = "参数错误,名称不能为空", groups={GroupAdd.class,GroupEdit.class})
    private String name;
    @Schema(description = "英文名称")
    private String enName;
    @Schema(description = "商品描述")
    private String goodsDesc;
    @Schema(description = "单位")
    private String unit1;
    @Schema(description = "单位2")
    private String unit2;

    @Schema(description = "关税收取方式 0-从价 1-从量", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @NotEmpty(message = "参数错误,关税收取方式不能为空", groups={GroupAdd.class,GroupEdit.class})
    private String tariffType;
    /**
     * 加入WTO大部分国家都有最惠国待遇的。
     */
    @Schema(description = "进口最惠国关税税率", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @NotNull(message = "进口最惠国关税税率必填", groups={GroupAdd.class,GroupEdit.class})
    private BigDecimal offTariffRate;
    @Schema(description = "进口普通关税税率", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @NotNull(message = "进口普通关税税率必填", groups={GroupAdd.class,GroupEdit.class})
    private BigDecimal commTariffRate;

    @Schema(description = "进口暂定税率")
    private BigDecimal provTaxRate;

    @Schema(description = "增值税税率", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @NotNull(message = "增值税必填", groups={GroupAdd.class,GroupEdit.class})
    private BigDecimal vatRate;


    @Schema(description = "出口税率")
    private BigDecimal exportRate;
    @Schema(description = "出口暂定税率")
    private BigDecimal exportProvTaxRate;
    @Schema(description = "出口退税率")
    private BigDecimal rebateRate;
    @Schema(description = "消费税税率")
    private BigDecimal cmpTaxRate;

    @Schema(description = "监管条件")
    private String monitor;
    @Schema(description = "检疫类别")
    private String iqType;
    @Schema(description = "备注")
    private String remark;
    @Schema(description = "状态")
    private String status;

    @Schema(description = "所属组织id")
    private Integer orgzId;
    @Schema(description = "所属组织名")
    private String orgzName;

    @Schema(description = "网站更新日期")
    private String gwUpdateDate;

    @Schema(description = "模糊查询 名称, hsCode")
    private String searchWord;
}
